Method for utilizing a memory of a de-interleaving unit

ABSTRACT

A method is proposed for utilizing a memory of a de-interleaving unit comprising the steps of determining a size of the memory according to a maximal symbol number of a data frame, a delay value, an adjustable parameter, and a half of a total symbol number of the data frame; accessing the memory according to a write memory address determined by a first algorithm during data buffering; and accessing the memory according to a read memory address determined by a second algorithm during data retrieving. The conventional access method has the drawback of ineffective use of the memory space of the de-interleaving unit, while the proposed method uses only about half the memory space for implementation.

CROSS-REFERENCE TO RELATED APPLICATION

[0001] This application is a continuation-in-part (CIP) application of the application “METHOD OF ACCESSING MEMORY OF DE-INTERLEAVING UNIT” with the application Ser. No. 10/173,234 filed Jun. 14, 2002, and this application claims the priority benefit of Taiwan application serial no. 90120811, filed Aug. 24, 2001.

BACKGROUND OF THE INVENTION

[0002] 1. Field of the Invention

[0003] This invention relates to a method for utilizing a memory of a de-interleaving unit in an optical disc drive device.

[0004] 2. Description of Related Art

[0005] To increase the reliability of read operation on a CD-ROM (Compact-Disc Read-Only-Memory) drive, data are interleaved before they are recorded on a CD-ROM disc. Therefore, the read operation in the CD-ROM drive should include a de-interleaving procedure. FIG. 1 is a schematic diagram showing a series of functional units involved in a read operation in the CD-ROM drive, which includes an EFM demodulation unit 102, a C1 decoding unit 104, a de-interleaving unit 106, and a C2 decoding unit 108. The EFM demodulation unit 102 is capable of demodulating data on the disc into a stream of 8-bit data. After the C1 decoding unit 104 receives a frame of 32 bytes (8-bit) data from the EFM demodulation unit 102, it decodes them into a frame of 28 bytes data and then transfers these decoded data to the de-interleaving unit 106 for de-interleaving. The de-interleaving unit 106 then transfers the de-interleaved data to the C2 decoding unit 108. During the de-interleaving procedure, each frame includes 28 bytes of data.

[0006] The de-interleaving unit 106 includes a memory unit for the de-interleaving process. FIG. 2 shows the memory allocation for the memory of the de-interleaving unit 106. Referring to FIG. 2 together with FIG. 1, the address range is from 0 to 3051. The 28 8-bit (byte) data in the first frame from the C1 decoding unit 104 are respectively denoted by (f1, 0), (f1, 1), . . . , (f1, 27). When the C1 decoding unit 104 transfers the first frame to the de-interleaving unit 106, data in the first frame are written into the memory of the de-interleaving unit 106 in such a manner according to the conventional access method as following. The first data (f0, 0) is written into Row 108 Column 0 (i.e., the address 3024); the second data (f0, 1) is written into Row 104 Column 1 (i.e., the address 2913); and so forth, the last data (f0, 27) is written into Row 0 Column 26 (i.e., the address 27).

[0007] After the first frame is written completely, the second frame is then written into the de-interleaving unit 106. In the following, the 28 8-bit data in the second frame from the C1 decoding unit 104 are respectively denoted by (f1, 0), (f1, 1)., (f1, 27). When the C1 decoding unit 104 transfers the second frame to the de-interleaving unit 106, data in the second frame are written into the memory of the de-interleaving unit 106 in such a manner according to conventional access method that the first data (f1, 0) is written into Row 109 Column 0 (i.e., the address 0); the second data (f1, 1) is written into Row 105 Column 1 (i.e., the address 2914); and so forth the last data (f1, 27) is written into the Row 1 Column 26 (i.e., the address 55). The similar procedure is repeated for each of the subsequent frames.

[0008] When a certain row in the memory of the de-interleaving unit 106 is fully rewritten by the decoded data, the de-interleaving unit 106 will then output all the data stored in that row to the C2 decoding unit 108. For example, when Row 108 is fully rewritten, the de-interleaving unit 106 will output all the data stored in Row 108 to the C2 decoding unit 108. In other words, when address 3051 (Row 108 Column 27) is rewritten by (f108, 27), all data stored in Row 108, including (f0, 0), (f4, 1), (f8, 2), . . . , and (f108, 27) will be transferred to the C2 decoding unit 108.

[0009]FIG. 9B is a schematic diagram showing the method for determining a size of a memory of a de-interleaving unit based on the prior art. Since the data buffering and the data retrieving procedures are frame by frame progressed individually, and the data retrieving procedures always starts on till the data buffering procedure completed, thus the required size of the memory of the de-interleaving will be [(2B−1)*D]*2B, wherein the [(2B−1)*D] is the maximal delay taken for preserving the size of the memory for the buffered data to be retrieved. For example, letting B=14, D=4, N=1, and length of each symbol of a data frame is 1 byte, the size of the memory of the de-interleaving unit will be (27*4)*28=3024 bytes.

[0010] One drawback to the forgoing memory access scheme, however, is that the memory of the de-interleaving unit 106 is ineffectively utilized. In other words, some memory locations reserved are unused during the de-interleaving process since the memory always be allocated by a maximum.

SUMMARY OF THE INVENTION

[0011] This invention providing a method for utilizing a memory of a de-interleaving unit, the steps of the method comprising: determining a size of the memory according to a maximal symbol number of a data frame, a delay value, an adjustable parameter, and a half of a total symbol number of the data frame; accessing the memory according to a write memory access index determined by a first algorithm during data buffering; and accessing the memory according to a read memory access index determined by a second algorithm during data retrieving.

[0012] The step of determining a size of the memory according to a maximal symbol number of a data frame, a delay value, an adjustable parameter, and a half of a total symbol number of the data frame further comprising: multiplying the maximal symbol number of a data frame by said delay value for obtaining a first temporary result; adding the first temporary result and a two times of the adjustable parameter up for obtaining a second temporary result, wherein said adjustable parameter is less than or equal to half of said first temporary result; and multiplying the second temporary result by the half of said total symbol number of the data frame for obtaining the size of the memory.

[0013] This invention utilizing several parameters for write into and read from the memory of the de-interleaving unit. A Write Memory Address WMA of each symbol for locating a decoded data in the memory of the de-interlacing unit based on a Write Frame Index WFIDX and a Control Word Count CWCNT for data buffering, whereas a Read Memory Address RMA of each symbol for retrieving an encoded data in the memory of the de-interlacing unit based on a Read Frame Index RFIDX and a Control Word Count CWCNT for data retrieving.

[0014] This invention performing a write memory address calculating procedure for determining a value of the write memory address of each symbol during the write frame index is less than the total symbol number of the data frame and the code word count is less than a second temporary result, whereas the invention performing a read memory address calculating procedure for determining a value of the read memory address of each symbol when the read frame index is less than the total symbol number of the data frame and the code word count is less than the second temporary result.

[0015] This invention also providing a method for determining a size of a memory of a de-interleaving unit, the steps of the method comprising: multiplying a maximal symbol number of a data frame by a delay value for obtaining a first temporary result; adding the first temporary result and a two times of an adjustable parameter up for obtaining a second temporary result, wherein said adjustable parameter is less than or equal to half of said first temporary result; and multiplying the second temporary result by a half of a total symbol number of the data frame for obtaining the size of the memory of the de-interleaving unit.

[0016] The mentioned method according to the invention reduced the required memory space in the de-interleaving unit by half as compared to the prior art for performing a de-interleaving process and is therefore more cost-effective than the prior art.

BRIEF DESCRIPTION OF DRAWINGS

[0017] The invention can be more fully understood by reading the following detailed description of the preferred embodiments, with reference made to the accompanying drawings, wherein:

[0018]FIG. 1 (PRIOR ART) is a schematic diagram showing a series of functional units involved in a read operation in a CD-ROM drive;

[0019]FIG. 2 (PRIOR ART) is a schematic diagram showing a memory allocation for the memory of de-interleaving unit according to the conventional access method;

[0020]FIG. 3 is a schematic diagram showing the memory of the de-interleaving unit according to the invention;

[0021]FIG. 4 is a schematic diagram showing the address mapping for each frame during data buffering;

[0022]FIG. 5 is a schematic diagram showing the address mapping for each frame during data retrieving;

[0023]FIG. 6 is a flowchart showing the write memory address calculating procedure of the invention for data buffering;

[0024]FIG. 7 is a flowchart showing the read memory address calculating procedure of the invention for data retrieving;

[0025]FIG. 8 is a flowchart showing the method for utilizing a memory of a de-interleaving unit according to the invention;

[0026]FIG. 9A is a flowchart showing the showing the method for determining a size of a memory of a de-interleaving unit according to the invention;

[0027]FIG. 9B (PRIOR ART) is a schematic diagram showing the method for determining a size of a memory of a de-interleaving unit; and

[0028]FIG. 9C is a schematic diagram showing the method for determining a size of a memory of a de-interleaving unit.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

[0029] The invention is designed for use to effectively use the memory of the de-interleaving unit for performing a de-interleaving process, so that the required memory can be reduced as compared to the prior art to make the memory utilization more cost-effective than the prior art.

[0030] Since the proposed method determining a size of the memory by multiplying a maximal symbol number of a data frame (denoted by “2B−1”) by a delay value (denote by “D”) for obtaining a first temporary result (denoted by “(2B−1)*D”); adding the first temporary result and a two times of adjustable parameter (denoted by “2N”) up for obtaining a second temporary result (denote by “(2B−1)*D+2N”), wherein the adjustable parameter is less than or equal to half of the first temporary result; and multiplying the second temporary result by a half of the total symbol number of the data frame (denoted by “B”) for obtaining the size of the memory. FIG. 3 is a schematic diagram showing the memory of the de-interleaving unit according to the invention. Letting N is equal to 1 and D is equal to 4, and the memory size of the de-interleaving unit. 106 will be [(2B−1)*D+2N]*B=[27*4+2]*14=1540 bytes, whereas the needed memory size of the prior art will be [(2B—1)*D*2B]=(27*4*28)=3024 bytes, and it's almost half of that required by the prior art. It's noted that the N ranges from 1 to half of the first temporary result. That is the N is less than or equal to (2B−1)*D/2. For example, the half of the first temporary result will be 54 as a maximum for the CD-ROM drive according to the specification of the corresponding standard. Moreover, as shown in FIG. 3, the address range is from 0 to 1623 since the second temporary result is 116. In the following, the 28 8-bit data in the first frame from the C1 decoding unit 104 are respectively denoted by (f0, 0), (f0, 1), . . . , (f0, 27). When the C1 decoding unit 104 transfers the first frame to the de-interleaving unit 106, the data contained in the first frame are written into the memory of the de-interleaving unit 106 according to the method of the invention in such a manner that the first data (f0, 0) is written into Row 0 Column 0 (i.e., the address 0); the second data (f0, 1) is written into Row 9 Column 4 (i.e., the address 116); and so forth until the last data (f0, 27) is written into Row 0 Column 4 (i.e., the address 4). After the first frame is completely written into the memory, the second frame from the C1 decoding unit 104 is then written into the de-interleaving unit 106. The 28 8-bit data in the second frame from the C1 decoding unit 104 are respectively denoted by (f1, 0), (f1, 1), . . . , (f1, 27). When the C1 decoding unit 104 transfers the second frame to the de-interleaving unit 106, data in the second frame are written into the memory of the de-interleaving unit 106 according to the method of the invention in such a manner that the first data (f1, 0) is written into Row 0 Column 1 (i.e., the address 1); the second data (f1, 1) is written into Row 9 Column 5 (i.e., the address 117); and so forth until the last data (f1, 27) is written into Row 0 Column 5 (i.e., the address 5). The similar procedure is repeated for each of the subsequent frames.

[0031]FIG. 4 is a schematic diagram showing the address mapping for each frame during data buffering. In FIG. 4, the term “WR” represents the sequence of the frames to be de-interleaved. That is, WR 0 represents the first frame, and WR 1 represents the second frame and so on. The terms C0˜C27 represent the symbol number of the data frame. The write memory address for each symbol of the first data frame (WR 0) is respectively 0, 116, 232, . . . 124 and 4 determined by a first algorithm during data buffering which comprising a write memory address calculating procedure, and the write address for other data frames were shown in FIG. 4.

[0032] After the write operation for some incoming frames is completed, the de-interleaving unit 106 then reads data stored in the memory according to the method of the invention and outputs these data to the C2 decoding unit 108. FIG. 5 is a schematic diagram showing the address mapping for each frame during data retrieving and determined by a second algorithm during data retrieving which comprising a read memory address calculating procedure. It is to be noted that a certain frame can be read only after the last data in this frame is already rewritten (or updated). For example, as shown in FIG. 5, the data in Row 0 (which includes data in the address 8, 128, 248, . . . 4) can be read only after all data in Row 0 have been rewritten (i.e., the last address (address 4) in this frame is rewritten).

[0033] The write memory address calculating procedure of the method of the invention due to the data buffering based on the parameter WMA for indicating the write memory address in the memory of the de-interleaving unit 106 of each symbol of a data frame; WFIDX for indicating the index of the currently-received frame from the C1 decoding unit 104 is currently being written into the de-interleaving unit 106; and CWCNT for indicating the symbol number of the currently-received frame is being written into the e-interleaving unit 106. FIG. 6 is a flowchart showing the write memory address calculating procedure of the invention for data buffering. As shown in FIG. 6, the step 602 and 604 indicating the write frame index and the code word count setting the initial value to 0 and 1 respectively, and the write memory address stores the copy of the write frame index. Besides, based on the step 636 to 640, the write memory address calculating procedure lasting during the write frame index is less than the total symbol number of said data frame (e.g., 28) and said code word count is less than said second temporary result (e.g., 110). As to the step 606 to 630, for example, letting B is 14, D is 4, and N is 1, step 610 shows that WMA will be set to (previous WMA+110) when WFIDX<57 as step 606 and CWCNT<14 as step 608; step 614 shows that WMA will be set to (previous WMA+53) when WFIDX<57 as step 606 and CWCNT=14 as step 608; step 616 shows that WMA will be set to (previous WMA-114) when WFIDX<57 as step 606 and CWCNT>14 as step 608; step 620 shows that WMA will be set to address (previous WMA+110) when WFIDX 57 as step 606 and CWCNT<14 as step 608; step 624 shows that WMA will be set to (previous WMA-57) when WFIDX 57 as step 606 and CWCNT=14 as step 608; step 624 shows that WMA will be set to (previous WMA-4) when WFIDX 57 as step 606 and CWCNT=[(WFIDX+4−1)/4] as step 608; and step 630 shows that WMA will be set to (previous WMA-114) when WFIDX 57 as step 606 and CWCNT≠[WFIDX+4−1)/4] as step 608.

[0034] After a certain incoming frame is completely written, the de-interleaving unit 106 then reads the data stored in the memory according to the method of the invention and outputs these data to the C2 decoding unit 108. The read memory address calculating procedure of the method of the invention due to the data retrieving based on the parameter RMA for indicating the read memory address in the memory of the de-interleaving unit 106 of each symbol of a data frame to be accessed; RFIDX for indicating the index of the frame is currently being read from the de-interleaving unit 106; and CWCNT for indicating the symbol number of the data frame currently being read. FIG. 7 is a flowchart showing the read memory address calculating procedure of the invention for data retrieving. As shown in FIG. 7, the step 702 and 704 indicating the read frame index and the code word count setting the initial value to 0 and 1 respectively, and the read memory address stores the copy of the read frame index. Besides, based on the step 748 to 752, the read memory address calculating procedure lasting during the read frame index is less than the total symbol number of said data frame (e.g., 28) and said code word count is less than said second temporary result (e.g., 110). As to the step 706 to 740, for example, letting B is 14, D is 4, and N is 1, step 710 shows that RMA will be set to (previous RMA+114) when RFIDX<1 as step 706 and CWCNT<14 as step 708; step 714 shows that RMA will be set to (previous RMA+57) when RFIDX<1 as step 706 and CWCNT=14 as step 708; step 716 shows that RMA will be set to (previous RMA-110) when RFIDX<1 as step 706 and CWCNT>14 as step 708; step 722 shows that RMA will be set to (previous RMA+114) when 58>RFIDX≧N as step 706 and step 718, and CWCNT<14 as step 720; step 726 shows that RMA will be set to (previous RMA-53) when 58>RFIDX≧N as step 706 and step 718, and CWCNT=14 as step 724; step 728 shows that RMA will be set to (previous RMA-110) when 58>RFIDX≧N as step 706 and step 718, and CWCNT>14; step 734 shows that RMA will be set to (previous RMA+4) when RFIDX>58 as step 718, and CWCNT<14 and CWCNT=[29−(RFIDX+6)/4] as step 732; step 736 shows that RMA will be set to (previous RMA+114) when RFIDX>58 as step 718, and CWCNT<14 and CWCNT≠[29-(RFIDX+6)/4] as step 732; step 740 shows that RMA will be set to (previous RMA+57) when RFIDX>58 as step 718, and CWCNT=14 as step 738; and step 740 shows that RMA will be set to (previous RMA+110) when RFIDX>58 as step 718, and CWCNT>14 as step 738.

[0035]FIG. 8 is a flowchart showing the method for utilizing a memory of a de-interleaving unit according to the invention. At first, the method determining a size of the memory according to a maximal symbol number of a data frame, a delay value, an adjustable parameter, and a half of a total symbol number of said data frame in step 810. Second, accessing the memory according to a write memory address determined by a first algorithm during data buffering in step 830; and accessing said memory according to a read memory address determined by a second algorithm during data retrieving in step 850. Moreover, step 810 further comprising multiplying the maximal symbol number of a data frame (denoted by “2B−1”) by the delay value (denoted by “D”) for obtaining a first temporary result (denoted by “(2B−1)*D”); adding the first temporary result and a two times of said adjustable parameter (denoted by “2N”) up for obtaining a second temporary result (denoted by “(2B−1)*D+2N”), wherein said adjustable parameter is less than or equal to half of said first temporary result; and multiplying the second temporary result by the half of the total symbol number of the data frame (denoted by “B”) for obtaining the size of the memory (denoted by “[(2B−1)*D+2N]*B”). Besides, step 830 further comprising providing and setting an initial value for the write memory address WMA, a write frame index WFIDX, and a code word count CWCNT for writing data to the memory; and performing a write memory address calculating procedure for determining a value of the memory write address of each symbol during the write frame index is less than the total symbol number of the data frame (e.g., 28) and the code word count is less than the second temporary result (e.g., 110). Furthermore, step 850 further comprising providing and setting an initial value for a read memory address RMA, a read frame index RFIDX, and a code word count CWCNT for reading data to the memory of the de-interleaving unit; and performing a read memory address calculating procedure for determining a value of the read memory address of each symbol when the read frame index is less than the total symbol number of the data frame (e.g., 28) and the code word count is less than the second temporary result (e.g., 110).

[0036]FIG. 9A is a flowchart showing the showing the method for determining a size of a memory of a de-interleaving unit according to the invention. The method multiplying the maximal symbol number of a data frame (denoted by “2B−1”) by the delay value (denoted by “D”) for obtaining a first temporary result (denoted by “(2B−1)*D”) in step 910; adding the first temporary result and a two times of said adjustable parameter (denoted by “2N”) up for obtaining a second temporary result (denoted by “(2B−1)*D+2N”) in step 920, wherein said adjustable parameter is less than or equal to half of the first temporary result (denoted by “(2B−1)*D/2”) and ranges from 1 to 54 for a CD-ROM drive; and multiplying the second temporary result by the half of the total symbol number of the data frame (denoted by “B”) for obtaining the size of the memory (denoted by “[(2B−1)*D+2N]*B”). For example, letting B=14, D=4, N=1, and length of each symbol of a data frame is 1 byte, the size of the memory of the de-interleaving unit will be (27* 4+2)*14=1540 bytes. It's noted that the adjustable parameter N is provided for adapting the accessing timing of the architecture of the memory of the de-interleaving unit for preventing the data override. Furthermore, FIG. 9C is a schematic diagram showing the method for determining a size of a memory of a de-interleaving unit. Since the invention utilizing the pipeline architecture of the memory of the de-interlacing and corresponding data buffering algorithm and data retrieving algorithm, the required size of the memory of the de-interleaving based on present invention will be [(2B−1)*D+2N]*B since the right part of the area can be reduced and viewed as the bottom part of the area. For example, letting B=14, D=4, N=1, and length of each symbol of a data frame is 1 byte, the size of the memory of the de-interleaving unit will be (27*4+2)*14=1540 bytes.

[0037] The invention can reduce the required memory space in the de-interleaving unit, substantially by half, for performing the de-interleaving process and is therefore more cost-effective than the prior art.

[0038] The invention has been described using exemplary preferred embodiments. However, it is to be understood that the scope of the invention is not limited to the disclosed embodiments. On the contrary, it is intended to cover various modifications and similar arrangements. The scope of the claims, therefore, should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements. 

What is claimed is:
 1. A method for utilizing a memory of a de-interleaving unit comprising: determining a size of said memory according to a maximal symbol number of a data frame, a delay value, an adjustable parameter, and a half of a total symbol number of said data frame; accessing said memory according to a write memory address determined by a first algorithm during data buffering; and accessing said memory according to a read memory address determined by a second algorithm during data retrieving.
 2. The method as recited to claim 1, further comprising: multiplying said maximal symbol number of a data frame by said delay value for obtaining a first temporary result; adding said first temporary result and a two times of said adjustable parameter up for obtaining a second temporary result, wherein said adjustable parameter is less than or equal to half of said first temporary result; and multiplying said second temporary result by said half of said total symbol number of said data frame for obtaining said size of said memory.
 3. The method as recited to claim 2, wherein said first algorithm further comprising: providing and setting an initial value for said write memory address, a write frame index, and a code word count for writing data to said memory; and performing a write memory address calculating procedure for determining a value of said memory write address of each symbol during said write frame index is less than said total symbol number of said data frame and said code word count is less than said second temporary result.
 4. The method as recited to claim 3, wherein said write memory address calculating procedure further comprising: setting said write memory address to a sum of a previous write memory address and said second temporary result when said write frame index is less than a sum of a product of said half of said total symbol number of said data frame and said delay value and said adjustable parameter, and said code word count is less than said half of said total symbol number of said data frame, wherein said previous write memory address indicates the write memory address of previous symbol be processed; setting said write memory address to a sum of said previous write memory address and a sum of a product of a half of said maximal symbol number of said data frame and said delay value and said adjustable parameter when said write frame index is less than said sum of said product of said half of said symbol amount of said data frame and said delay value and said adjustable parameter, and said code word count is equal to said half of said total symbol number of said data frame; setting said write memory address to a difference of said previous write memory address and a sum of a product of said total symbol number of said data frame and said delay value and two times of said adjustable parameter when said write frame index is less than said sum of said product of said half of said total symbol number of said data frame and said delay value and said adjustable parameter, and said code word count is greater than said half of said total symbol number of said data frame; setting said write memory address to a sum of said previous write memory address and said second temporary result when said write frame index is greater than or equal to said sum of said product of said half of said total symbol number of said data frame and said delay value and said adjustable parameter, and said code word count is less than half of said total symbol number of said data frame; setting said write memory address to a difference of said previous write memory address and said sum of said product of said half of said total symbol number of said data frame and said delay value and said adjustable parameter when said write frame index is greater than or equal to said sum of said product of said half of said total symbol number of said data frame and said delay value and said adjustable parameter, and said code word count is equal to said half of said total symbol number of said data frame; setting said write memory address to a difference of said previous write memory address and said delay value when said write frame index is greater than or equal to said sum of said product of said half of said total symbol number of said data frame and said delay value and said adjustable parameter, and said code word count is equal to a quotient of said write frame index and said delay value; and setting said write memory address to a difference of said previous write memory address and said sum of a product of said two times of said half of said symbol amount of said data frame and said delay value and two times of said adjustable parameter when said write frame index is greater than or equal to said sum of said product of said half of said total symbol number of said data frame and said delay value and said adjustable parameter, and said code word count is not equal to a quotient of said write frame index and said delay.
 5. The method as recited to claim 3, wherein said write memory address calculating procedure further comprising: adjusting said code word count when said value of said write memory address of each symbol is determined and if said code word count is less than said total symbol number of said data frame; and adjusting said write frame index when said code word count is greater than said total symbol number of said data frame and if said write frame index is less than said second temporary result.
 6. The method as recited to claim 3, wherein said write memory address calculating procedure further comprising: resetting said code word count according said initial value; and resetting said write memory address according to said write frame index when said write frame index is less than said second temporary result.
 7. The method as recited to claim 2, wherein said second algorithm further comprising: providing and setting an initial value for a read memory address, a read frame index, and a code word count for reading data to said memory of said de-interleaving unit; and performing a read memory address calculating procedure for determining a value of said read memory address of each symbol when said read frame index is less than said total symbol number of said data frame and said code word count is less than said second temporary result.
 8. The method as recited to claim 7, wherein said read memory address calculating procedure further comprising: setting said read memory address to a sum of a previous read memory address and said sum of said product of said total symbol number of said data frame and said delay value and two times of said adjustable parameter when said read frame index is less than said adjustable parameter and said code word count is less than said half of said total symbol number of said data frame, wherein said previous read memory address indicates the read memory address of previous symbol be processed; setting said read memory address to a sum of said previous read memory address and said sum of said product of said half of said total symbol number of said data frame and said delay value and said adjustable parameter when said read frame index is less than said adjustable parameter and said code word count is equal to said half of said total symbol number of said data frame; setting said read memory address to a difference of said previous read memory address and said second temporary result when said read frame index is less than said adjustable parameter and said code word count is greater than said half of said total symbol number of said data frame; setting said read memory address to a sum of said previous read memory address and said sum of said product of said total symbol number of said data frame and said delay value and two times of said adjustable parameter when said read frame index is between said adjustable parameter and a sum of a product of said half of said total symbol number of said data frame and said delay value and two times of said adjustable parameter, and said code word count is less than said half of said total symbol number of said data frame; setting said read memory access index to a difference of said previous read memory access index and a difference of a sum of a product of half of said maximal symbol number of said data frame and said delay value and said adjustable parameter when said read frame index is between said adjustable parameter and said sum of said product of said half of said total symbol number of said data frame and said delay value and two times of said adjustable parameter, and said code word count is equal to said half of said total symbol number of said data frame; setting said read memory access index to a difference of said previous read memory access index and said second temporary result when said read frame index is between said adjustable parameter and said sum of said product of said half of said total symbol number of said data frame and said delay value and two times of said adjustable parameter, and said code word count is greater than said half of said total symbol number of said data frame; setting said read memory access index to a sum of said previous read memory access index and said delay value when said read frame index is greater than said adjustable parameter and said code word count is less than said half of said total symbol number of said data frame and equal to a difference of a sum of said total symbol number of said data frame and one and a quotient of a difference of a sum of said read frame index and two times of said delay value and two times of said adjustable parameter and said delay value; setting said read memory access index to a sum of said previous read memory access index and said sum of said product of said total symbol number of said data frame and said delay value and two times of said adjustable parameter when said read frame index is greater than said adjustable parameter and said code word count is less than said half of said total symbol number of said data frame and not equal to said difference of a sum of said total symbol number of said data frame and one and a quotient of a difference of a sum of said read frame index and two times of said delay value and two times of said adjustable parameter and said delay value; setting said read memory access index to a sum of said previous read memory access index and said sum of said product of said half of said total symbol number of said data frame and said delay value and said adjustable parameter when said read frame index is greater than said adjustable parameter and said code word count is equal to said half of said total symbol number of said data frame; and setting said read memory access index to a difference of said previous read memory access index and said second temporary result when said read frame index is greater than said adjustable parameter and said code word count is greater than said half of said total symbol number of said data frame.
 9. The method as recited to claim 7, wherein said read memory address calculating procedure further comprising: adjusting said code word count when said read memory address of each symbol is determined and if said code word count is less than said total symbol number of said data frame; and adjusting said read frame index when said code word count is greater than said total symbol number of said data frame and if said read frame index is less than said second temporary result.
 10. The method as recited to claim 7, wherein said read memory address calculating procedure further comprising: resetting said code word count according said initial value; and resetting said read memory address according to said read frame index when said read frame index is less than said second temporary result.
 11. The method as recited to claim 2, further comprising: setting said adjustable parameter to 1 so that said size of said memory is a minimum.
 12. A method for determining a size of a memory of a de-interleaving unit comprising: multiplying a maximal symbol number of a data frame by a delay value for obtaining a first temporary result; adding said first temporary result and a two times of an adjustable parameter up for obtaining a second temporary result, wherein said adjustable parameter is less than or equal to half of said first temporary result; and multiplying said second temporary result by a half of a total symbol number of said data frame for obtaining said size of said memory of said de-interleaving unit.
 13. The Method As Recited To claim 12, Wherein Said Adjustable Parameter N Ranges From 1 To 54 For A Cd-Rom Drive. 